package cn.home.fenni.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import cn.home.common.annotation.Excel;
import cn.home.common.core.domain.BaseEntity;

/**
 * 服务包对象 home_service_package
 * 
 * @author homedoctor
 * @date 2025-04-09
 */
@Data
public class HomeServicePackage extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 服务包编号 */
    @Excel(name = "服务包编号")
    private Long packageId;

    /** 服务包名称 */
    @Excel(name = "服务包名称")
    private String packageName;

    /** 类型：1初级包、2中级、3高级、4特色定制。数据字典 */
    @Excel(name = "类型：1初级包、2中级、3高级、4特色定制。数据字典")
    private Long packageType;

    /** 服务包价格 */
    @Excel(name = "服务包价格")
    private BigDecimal price;

    /** 服务对象 */
    @Excel(name = "服务对象")
    private String serviceTarget;

    /** 签约周期 */
    @Excel(name = "签约周期")
    private String contractCycle;

    /** 服务介绍 */
    @Excel(name = "服务介绍")
    private String serviceIntroduction;

    /** 续签状态：0 可续签，1 不可续签 */
    @Excel(name = "续签状态：0 可续签，1 不可续签")
    private Long renewalStart;

    /** 服务包图片 */
    @Excel(name = "服务包图片")
    private String packageImage;

    /** 审核状态 0 等待审核，1 未通过，2 通过 */
    @Excel(name = "审核状态 0 等待审核，1 未通过，2 通过")
    private Long auditStatus;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auditTime;

    /** 是否停用，0 使用中，1 停用 */
    @Excel(name = "是否停用，0 使用中，1 停用")
    private Long stop;

    /** 逻辑删除，0 表示，1 删除 */
    private Long del;
    private List<String> tags;

    public void setPackageId(Long packageId) 
    {
        this.packageId = packageId;
    }

    public Long getPackageId() 
    {
        return packageId;
    }

    public void setPackageName(String packageName) 
    {
        this.packageName = packageName;
    }

    public String getPackageName() 
    {
        return packageName;
    }

    public void setPackageType(Long packageType) 
    {
        this.packageType = packageType;
    }

    public Long getPackageType() 
    {
        return packageType;
    }

    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }

    public void setServiceTarget(String serviceTarget) 
    {
        this.serviceTarget = serviceTarget;
    }

    public String getServiceTarget() 
    {
        return serviceTarget;
    }

    public void setContractCycle(String contractCycle) 
    {
        this.contractCycle = contractCycle;
    }

    public String getContractCycle() 
    {
        return contractCycle;
    }

    public void setServiceIntroduction(String serviceIntroduction) 
    {
        this.serviceIntroduction = serviceIntroduction;
    }

    public String getServiceIntroduction() 
    {
        return serviceIntroduction;
    }

    public void setRenewalStart(Long renewalStart) 
    {
        this.renewalStart = renewalStart;
    }

    public Long getRenewalStart() 
    {
        return renewalStart;
    }

    public void setPackageImage(String packageImage) 
    {
        this.packageImage = packageImage;
    }

    public String getPackageImage() 
    {
        return packageImage;
    }

    public void setAuditStatus(Long auditStatus) 
    {
        this.auditStatus = auditStatus;
    }

    public Long getAuditStatus() 
    {
        return auditStatus;
    }

    public void setAuditTime(Date auditTime) 
    {
        this.auditTime = auditTime;
    }

    public Date getAuditTime() 
    {
        return auditTime;
    }

    public void setStop(Long stop) 
    {
        this.stop = stop;
    }

    public Long getStop() 
    {
        return stop;
    }

    public void setDel(Long del) 
    {
        this.del = del;
    }

    public Long getDel() 
    {
        return del;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("packageId", getPackageId())
            .append("packageName", getPackageName())
            .append("packageType", getPackageType())
            .append("price", getPrice())
            .append("serviceTarget", getServiceTarget())
            .append("contractCycle", getContractCycle())
            .append("serviceIntroduction", getServiceIntroduction())
            .append("renewalStart", getRenewalStart())
            .append("packageImage", getPackageImage())
            .append("auditStatus", getAuditStatus())
            .append("auditTime", getAuditTime())
            .append("stop", getStop())
            .append("del", getDel())
            .toString();
    }
}
